/*
 * $Id: $
 */
package org.rcgwt.client.ui.grid.internal.model;

/**
 * 
 * @author Olivier Oeuillot (latest modification by $Author: $)
 * @version $Revision: $ $Date: $
 */
public interface IViewModel extends IElementModel {
	int VIEW_TYPE = 2;

	int LEFT_HEADER = 0x01;

	int RIGHT_HEADER = 0x02;

	int TOP_HEADER = 0x04;

	int BOTTOM_HEADER = 0x08;

	int HORIZONTAL_SCROLLBAR = 0x100;

	int VERTICAL_SCROLLBAR = 0x200;

	IViewModelElements getViewModelElements();

	int getRenderHints();

	IGridModel getGridModel();

	boolean setScrollPositions(int scrollLeft, int scrollTop);

	int getScrollLeft();

	int getScrollTop();

	/*
	 * void onScrollEvent(IViewRenderContext viewRenderContext);
	 * 
	 * void onClientMouseMoveEvent(IViewRenderContext viewRenderContext, Event
	 * event, Element element);
	 * 
	 * void onClientMouseOutEvent(IViewRenderContext viewRenderContext, Event
	 * event, Element element);
	 * 
	 * void onClientMouseOverEvent(IViewRenderContext viewRenderContext, Event
	 * event, Element element);
	 */

	// IHeaderModel defineHeader(int modelIndex, IHeaderModel.Position
	// position);

	IHeaderModel getHeaderModelByPosition(IHeaderModel.Position position);

	IHeaderModel[] listHeaderModels();

	void show(IElementModel newElementModel);
}